/**
 * Created by Administrator on 14-12-01.
 * 模拟淘宝SKU添加组合
 * 页面注意事项：
 *      1、 .Father_Title      这个类作用是取到所有标题的值，赋给表格，如有改变JS也应相应改动
 *      2、 .Father_Item       这个类作用是取类型组数，有多少类型就添加相应的类名：如: Father_Item1、Father_Item2、Father_Item3 ...
 */
$(function () {
    $(document).on('change', '.div_contentlist label', function () {
        var parent = $(this).parents('.Father_Item');
        var _this = $('.checkboxItem', this);
        // 是否全选
        $('.checkboxItem', parent).each(function () {
            var bCheck2 = true;
            if (_this.hasClass('check_all')) {
                if (_this.get(0).checked) {
                    bCheck2 = true;
                    $('.check_item', parent).prop('checked', bCheck2);
                } else {
                    bCheck2 = false;
                    $('.check_item', parent).prop('checked', bCheck2);
                }
                return false;
            } else {
                if ((!this.checked) && (!$(this).hasClass('check_all'))) {
                    bCheck2 = false;
                    $('.check_all', parent).prop('checked', bCheck2);
                    return false;
                }
            }
            $('.check_all', parent).prop('checked', bCheck2);
        });

        step.Creat_Table();
    });
    var step = {
        // 信息组合
        Creat_Table: function () {
            var SKUObj = $('.Father_Title');
            var arrayTile = new Array(); // 表格标题数组
            var arrayInfor = new Array(); // 盛放每组选中的CheckBox值的对象
            var arrayColumn = new Array(); // 指定列，用来合并哪些列
            var bCheck = true; // 是否每个属性都已经选择，只有每个属性都选择，表格才会生成
            var columnIndex = 0;
            $.each(SKUObj, function (i, item) {
                arrayColumn.push(columnIndex++);
                arrayTile.push(SKUObj.eq(i).text().replace('：', ''));
                var itemName = '.Father_Item' + i;
                // 获取选中的checkbox的值
                var order = new Array();
                $(itemName + ' .check_item:checked').each(function () {
                    order.push($(this).val());
                });
                arrayInfor.push(order);
                if (order.join() == '') {
                    bCheck = false;
                }
            })
            // 开始生成表格
            if (bCheck) {
                $('#createTable').html('');
                var table = $('<table id="process" class="table table-bordered attrTable"></table>');
                table.appendTo($('#createTable'));
                var thead = $('<thead></thead>');
                thead.appendTo(table);
                var trHead = $('<tr></tr>');
                trHead.appendTo(thead);
                // 创建表头
                var str = '';
                str += '<th nowrap>规格</th>';
                str += '<th width="180">商品货号</th>';
                str += '<th width="80"><a href="javascript:;" onclick="setVal(2)">库存</a></th>';
                str += '<th width="100"><a href="javascript:;" onclick="setVal(3)">市场价</a></th>';
                str += '<th>销售价 <a href="javascript:;" onclick="setVal(4)">一口价</a> <a href="javascript:;" onclick="setPrice(\'/system/shop_goods/ladderprice.html\')">阶梯价</a></th>';
                str += '<th width="80"><a href="javascript:;" onclick="setVal(5)">运费</a></th>';
                str += ' <th width="60"><a href="javascript:;" onclick="setVal(6)">起订量</a></th>';
                str += ' <th width="60"><a href="javascript:;" onclick="setVal(7)">步长</a></th>';
                str += '<th width="60">操作</th>';
                trHead.append(str);
                var tbody = $('<tbody></tbody>');
                tbody.appendTo(table);
                var zuheDate = step.doExchange(arrayInfor);
                if (zuheDate.length > 0) {
                    //创建行
                    $.each(zuheDate, function (index, item) {
                        var td_array = item.split(',');
                        var tr = $('<tr></tr>');
                        tr.appendTo(tbody);
                        var str = '';
                        var sku_name = [];
                        $.each(td_array, function (i, values) {
                            sku_name.push(values);
                        });
                        str += '<td><input name="sku[' + index + '][sku_name]" type="hidden" value="' + sku_name.join(",") + '" />' + sku_name.join(",") + '</td>';
                        str += '<td><input name="sku[' + index + '][sku_sn]" type="text" class="form-control input-sm" value="' + sku_sn + index + '" /></td>';
                        str += '<td><input name="sku[' + index + '][goods_stock]" type="text" class="form-control input-sm" value="100" /></td>';
                        str += '<td><input name="sku[' + index + '][market_price]" type="text" class="form-control input-sm" value="" /></td>';
                        str += '<td><input name="sku[' + index + '][goods_price]" type="text" class="form-control input-sm" value="" /></td>';
                        str += '<td><input name="sku[' + index + '][goods_freight]" type="text" class="form-control input-sm" value="0" /></td>';
                        str += '<td><input name="sku[' + index + '][minimum]" type="text" class="form-control input-sm" value="1" /></td>';
                        str += '<td><input name="sku[' + index + '][step]" type="text" class="form-control input-sm" value="1" /></td>';
                        str += '<td><a href="javascript:;" onclick="$(this).closest(\'tr\').remove();">删除</a></td>';
                        tr.append(str);
                    });
                }

                //结束创建Table表
                arrayColumn.pop(); //删除数组中最后一项
            } else {
                //未全选中,清除表格
                document.getElementById('createTable').innerHTML = "";
            }
        },
        doExchange: function (doubleArrays) {
            // 二维数组，最先两个数组组合成一个数组，与后边的数组组成新的数组，依次类推，知道二维数组变成以为数组，所有数据两两组合
            var len = doubleArrays.length;
            if (len >= 2) {
                var arr1 = doubleArrays[0];
                var arr2 = doubleArrays[1];
                var len1 = arr1.length;
                var len2 = arr2.length;
                var newLen = len1 * len2;
                var temp = new Array(newLen);
                var index = 0;
                for (var i = 0; i < len1; i++) {
                    for (var j = 0; j < len2; j++) {
                        temp[index++] = arr1[i] + ',' + arr2[j];
                    }
                }
                var newArray = new Array(len - 1);
                newArray[0] = temp;
                if (len > 2) {
                    var _count = 1;
                    for (var i = 2; i < len; i++) {
                        newArray[_count++] = doubleArrays[i];
                    }
                }
                return step.doExchange(newArray);
            } else {
                return doubleArrays[0];
            }
        }
    }
})
/**
 * 设置单个价格
 */
function setVal(col) {
    In('layer',function () {
        layer.prompt(function (val, index) {
            $(".attrTable tr").each(function () {
                $(this).children().eq(col).find('input').val(val);
            })
            layer.close(index);
        });
    })
}
/**
 * 设置一口价、阶梯价
 */
function setPrice(url) {
    In('layer','templete',function () {
        getAjax('/site/shop_goods/ladderprice','',function (html) {
            layer.open({
                type: 1,
                title:'阶梯价设置',
                area: ['420px', '240px'], //宽高
                btn:['确认'],
                content: html,
                yes: function(index,layero){
                    var ladderPrice = getLadderPrice();
                    if(ladderPrice!=''){
                        $(".attrTable tr").each(function () {
                            $(this).children().eq(4).find('input').val(ladderPrice);
                        })
                        layer.close(index);
                    }else{
                        return false;
                    }
                }
            });
        })

    })
}